home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Ghostwriter 1.1 germ d1.adf / Ghostwriter / Ghostwriter.amosSourceCode
AMOS Source Code  |  1992-01-05  |  27KB  |  1,178 lines

  1. Set Buffer 210
  2. Rem - Erste Definitionen - 
  3. Dim TR(6),TB(6),ZEILE$(22*60)
  4. Global W_W,TRB$,TR(),ST$,LR,VO,TB(),SDAT$,ZEILE$(),ZEILE,SPALTE,LZEILE,SEITE,J,ANF,SCH,T$,GSZ,ESS,VF
  5. For T=1 To 6 : TB(T)=10*T : Next : TB(0)=1
  6. SETUP_LESEN
  7. TREIBER_LESEN
  8. Break Off 
  9. Fix(0)
  10. Screen Open 1,640,256,8,Hires
  11. Wind Open 1,20,5,73,27,1
  12. Load Iff "Ghostwriter:bild1"
  13. Border 1,4,4 : Paper 4 : Pen 0 : Clw 
  14. Wind Save 
  15. Rem Palette $0,$FFF,$F00,$80,$999,$FB0,$963,$CA7 
  16. Rem - Seitenzahl erfragen -
  17. L1=%11111111
  18. L2=%11000011
  19. L3=%10000001
  20. L4=%10000001
  21. L5=%10000001
  22. L6=%10000001
  23. L7=%11000011
  24. L8=%11111111
  25. Set Curs L1,L2,L3,L4,L5,L6,L7,L8
  26. SEITENZAHL:
  27. Wind Open 2,170,80,30,5,1
  28. Border 2,1,0 : Paper 1 : Clw 
  29. Print "  Wieviele Seiten wollen"
  30. Print "     Sie bearbeiten ?"
  31. HOLEN["Seiten:",9,2,2] : SEITEN=Val(ST$)
  32. If SEITEN>22 or SEITEN<1 Then Wind Close : Goto SEITENZAHL
  33. Wind Close : Clw : Show 
  34. Rem - Feste Variablen festsetzen - 
  35. ZEILE=1 : SPALTE=1 : SEITE=1 : LR=4 : VO=2
  36. For X=1 To 22*60
  37.    ZEILE$(X)=String$(" ",70)
  38. Next 
  39. LZEILE=SEITEN*60
  40. T$=Space$(20) : GSZ=70 : ESS=35 : VF=0
  41. MEN�S
  42. Rem - Hauptprozeduren -
  43. ANZEIGE
  44. Ink 0 : Box 50,185 To 565,200
  45. Ink 1 : Paint 60,190,1
  46. S_DATEN_LESEN : Home : Change Mouse 1
  47. EINGABE:
  48. WARTEN:
  49. If Choice Then Goto WAHLEN
  50. I$=Inkey$
  51. SC=Scancode
  52. KS=Key Shift
  53. If I$="" Then Goto WARTEN
  54. If KS=1 and SC=66 or KS=2 and SC=66 Then Gosub TAL : Goto WARTEN
  55. If SC=95 Then INFO_2 : Goto WARTEN
  56. If SC=66 Then Gosub TAR
  57. If SC=79 Then Gosub CURSL
  58. If SC=78 Then Gosub CURSR
  59. If SC=76 Then Gosub CURSH
  60. If SC=77 Then Gosub CURSU
  61. If SC=68 or SC=67 Then Gosub ENTER
  62. If SC=65 Then Gosub NZWEG
  63. If SC=70 Then Gosub ZEWEL
  64. If SC=80 Then Gosub ZLWEG
  65. If SC=81 Then Gosub ZLEIN
  66. If SC=82 Then Gosub SEVBL
  67. If SC=83 Then Gosub SERBL
  68. If SC=84
  69.    Gosub ZEEIN
  70.    Locate 0,
  71.    Print ZEILE$(ZEILE)
  72.    Remember X 
  73.    Remember Y 
  74.    Curs On 
  75. End If 
  76. If SC=85 Then Gosub SEANF
  77. If SC=86 Then Gosub SEEND
  78. If SC=87 Then Gosub ZANFG
  79. If SC=88 Then Gosub ZENDE
  80. If SC=89 Then Gosub ZWEG2
  81. If Asc(I$)>31 and Asc(I$)<253 Then Gosub SCHREIBEN
  82. Goto WARTEN
  83. SCHREIBEN:
  84. ZW$=ZEILE$(ZEILE)
  85. Mid$(ZW$,SPALTE,1)=I$
  86. Print I$;
  87. If Y Curs=20 and SPALTE=GSZ Then Cleft : WORD_WRAP : Shoot : Goto WARTEN
  88. Cleft : Gosub CURSR
  89. Clear Key : I$=""
  90. Return 
  91. TAR:
  92. X=SPALTE/10+1 : If X=7 Then X=0 : SPALTE=1 : Locate SPALTE-1, : ANZEIGE : Return 
  93. SPALTE=TB(X)
  94. Locate SPALTE-1, : ANZEIGE
  95. Return 
  96. TAL:
  97. X=(SPALTE-1)/10 : If X<1 Then X=6 : SPALTE=60 : Locate SPALTE-1, : ANZEIGE : Return 
  98. SPALTE=TB(X)
  99. Locate SPALTE-1, : ANZEIGE
  100. Return 
  101. CURSR:
  102. VF=1
  103. If SPALTE=70 Then WORD_WRAP : If W_W=1 Then Goto WARTEN
  104. If ZEILE=LZEILE and SPALTE=GSZ Then Shoot : Return 
  105. If SPALTE=GSZ and Y Curs=19 Then Shoot : Return 
  106. If SPALTE=GSZ
  107.    Inc ZEILE
  108.    SPALTE=1
  109.    Cdown : Locate 0,
  110.    ANZEIGE
  111.    Bell 
  112.    Return 
  113. End If 
  114. Inc SPALTE
  115. If SPALTE>GSZ-5 Then Bell 
  116. Cright 
  117. ANZEIGE
  118. Return 
  119. CURSL:
  120. If SPALTE=1 and ZEILE=1 Then Shoot : Return 
  121. If SPALTE=1 and Y Curs=0 Then Shoot : Return 
  122. If SPALTE=1
  123.    Dec ZEILE
  124.    SPALTE=GSZ
  125.    Cup : Locate GSZ-1,
  126.    ANZEIGE
  127.    Clear Key 
  128.    Return 
  129. End If 
  130. Dec SPALTE
  131. Cleft 
  132. Clear Key 
  133. ANZEIGE
  134. Return 
  135. CURSH:
  136. If ZEILE=1 Then Shoot : Return 
  137. SE=(ZEILE-2)/60
  138. SEITE=SE+1
  139. If Y Curs=0
  140.    Gosub BILD2
  141.    Dec ZEILE
  142.    Locate ,19
  143.    Clear Key 
  144.    ANZEIGE
  145.    Return 
  146. End If 
  147. Dec ZEILE
  148. Cup 
  149. Clear Key 
  150. ANZEIGE
  151. Return 
  152. CURSU:
  153. If ZEILE=LZEILE Then Shoot : Return 
  154. SE=(ZEILE)/60
  155. SEITE=SE+1
  156. If Y Curs=19
  157.    Gosub BILD1
  158.    Inc ZEILE
  159.    Locate ,0
  160.    ANZEIGE
  161.    Clear Key 
  162.    Return 
  163. End If 
  164. Inc ZEILE
  165. Cdown 
  166. Clear Key 
  167. ANZEIGE
  168. Return 
  169. ENTER:
  170. If ZEILE=LZEILE Then Boom : Return 
  171. If Y Curs=19
  172.    Gosub BILD1
  173.    Inc ZEILE
  174.    SPALTE=1
  175.    Locate 0,0
  176.    ANZEIGE
  177.    Clear Key 
  178.    Return 
  179. End If 
  180. Inc ZEILE : SPALTE=1
  181. Cdown 
  182. Clear Key 
  183. ANZEIGE
  184. Locate 0,
  185. Return 
  186. BILD1:
  187. Curs Off 
  188. Home 
  189. RemFor T=1 To 20 
  190. RemPrint Space$(70); 
  191. RemNext  
  192. X=ZEILE+1
  193. XMAX=X+19
  194. If XMAX>LZEILE Then XMAX=LZEILE
  195. Home 
  196. WID:
  197. Print ZEILE$(X);
  198. Inc X
  199. If X=XMAX+1
  200.    Locate SPALTE-1,0
  201.    Clear Key 
  202.    Curs On 
  203.    Return 
  204. End If 
  205. Goto WID
  206. BILD2:
  207. Curs Off 
  208. Home 
  209. RemFor T=1 To 20 
  210. RemPrint Space$(70); 
  211. RemNext  
  212. X=ZEILE-1
  213. XMAX=X-19
  214. If XMAX<1 Then XMAX=1
  215. Locate 0,19
  216. WID2:
  217. Print ZEILE$(X);
  218. Dec X
  219. If X=XMAX-1
  220.    Locate SPALTE-1,0
  221.    Clear Key 
  222.    Curs On 
  223.    Return 
  224. End If 
  225. Cup : Cup 
  226. Goto WID2
  227. ZWEG2:
  228. ZW$=ZEILE$(ZEILE)
  229. Right$(ZW$,71-SPALTE)=Space$(71-SPALTE)
  230. Cline 71-SPALTE
  231. Return 
  232. ZENDE:
  233. SPALTE=GSZ
  234. Locate GSZ-1,
  235. ANZEIGE
  236. Return 
  237. ZANFG:
  238. SPALTE=1
  239. Locate 0,
  240. ANZEIGE
  241. Return 
  242. SEANF:
  243. If Y Curs=0 Then Return 
  244. SCHLEIFE1:
  245. Dec ZEILE
  246. Cup 
  247. If Y Curs=0 Then ANZEIGE : Return 
  248. Goto SCHLEIFE1
  249. SEEND:
  250. If Y Curs=19 Then Return 
  251. Curs Off 
  252. SCHLEIFE2:
  253. Inc ZEILE : If ZEILE>LZEILE Then Dec ZEILE : ANZEIGE : Curs On : Return 
  254. Cdown 
  255. If Y Curs=19 Then ANZEIGE : Curs On : Return 
  256. Goto SCHLEIFE2
  257. ZEWEL:
  258. Curs Off 
  259. Memorize X 
  260. Memorize Y 
  261. ZW$=ZEILE$(ZEILE)
  262. ER$=Left$(ZW$,SPALTE-1)
  263. LT$=Right$(ZW$,GSZ-SPALTE)
  264. ZW2$=ER$+LT$+Chr$(32)
  265. ZEILE$(ZEILE)=Left$(ZW2$,GSZ)
  266. Locate 0,
  267. Print ZW2$;
  268. Remember X 
  269. Remember Y 
  270. Curs On 
  271. Return 
  272. NZWEG:
  273. If SPALTE=1 Then Shoot : Return 
  274. If SPALTE<6 Then Bell 
  275. Curs Off 
  276. Memorize X 
  277. Memorize Y 
  278. ZW$=ZEILE$(ZEILE)
  279. ER$=Left$(ZW$,SPALTE-2)
  280. LT$=Right$(ZW$,GSZ+1-SPALTE)
  281. ZW2$=ER$+LT$+Chr$(32)
  282. ZEILE$(ZEILE)=Left$(ZW2$,GSZ)
  283. Dec SPALTE
  284. Locate 0,
  285. Print ZEILE$(ZEILE)
  286. Remember X 
  287. Remember Y 
  288. Cmove -1,0
  289. ANZEIGE
  290. Curs On 
  291. Return 
  292. ZEEIN:
  293. If SPALTE=GSZ Then Return 
  294. ZW$=ZEILE$(ZEILE)
  295. If Right$(ZW$,1)=Chr$(32) Then Goto SCHLEIFE3
  296. Shoot : Return 
  297. SCHLEIFE3:
  298. Curs Off 
  299. Memorize X 
  300. Memorize Y 
  301. X=SPALTE-1
  302. XT1$=Right$(ZW$,GSZ-X)
  303. XT2$=Left$(ZW$,X)
  304. XT3$=XT2$+Chr$(32)+XT1$
  305. ZEILE$(ZEILE)=Left$(XT3$,GSZ)
  306. Locate 0,
  307. Print ZEILE$(ZEILE)
  308. Remember X 
  309. Remember Y 
  310. Curs On 
  311. Return 
  312. ZLWEG:
  313. Curs Off 
  314. Memorize X 
  315. Memorize Y 
  316. If ZEILE=LZEILE Then ZEILE$(ZEILE)=Space$(70) : Locate 0, : Print ZEILE$(ZEILE) : Remember X : Remember Y : Curs On : Return 
  317. A=ZEILE : B=LZEILE-1
  318. Do 
  319.    ZEILE$(A)=ZEILE$(A+1)
  320.    Inc A
  321.    If A=LZEILE Then Goto SCHLU�
  322. Loop 
  323. SCHLU�:
  324. ZEILE$(LZEILE)=Space$(70)
  325. Gosub SEANF
  326. A=ZEILE : C=A
  327. Gosub SEEND
  328. B=ZEILE
  329. Home 
  330. WID3:
  331. Print ZEILE$(C);
  332. Inc C
  333. If C=B+1 Then Locate SPALTE-1,0 : Clear Key : Curs On : Home : SPALTE=1 : ZEILE=A : ANZEIGE : Curs On : Return 
  334. Goto WID3
  335. ZLEIN:
  336. If ZEILE=LZEILE Then Shoot : Return 
  337. A=ZEILE : B=LZEILE
  338. Do 
  339.    ZEILE$(B)=ZEILE$(B-1)
  340.    Dec B
  341.    If B=A Then Goto SCHLU�2
  342. Loop 
  343. SCHLU�2:
  344. ZEILE$(A)=Space$(70)
  345. Gosub SEANF
  346. A=ZEILE : C=A
  347. Gosub SEEND
  348. B=ZEILE
  349. Home 
  350. WID4:
  351. Print ZEILE$(C);
  352. Inc C
  353. If C=B+1 Then Locate SPALTE-1,0 : Clear Key : Curs On : Home : ZEILE=A : SPALTE=1 : ANZEIGE : Curs On : Return 
  354. Goto WID4
  355. SEVBL:
  356. Gosub SEANF
  357. Gosub CURSH
  358. ANZEIGE
  359. Return 
  360. SERBL:
  361. Gosub SEEND
  362. Gosub CURSU
  363. ANZEIGE
  364. Return 
  365. WAHLEN:
  366. On Choice(1) Goto DATEI,BLOCK,BEARBEITEN,DRUC,KNOPF
  367. DATEI:
  368. If Choice(2)=1 Then ALERT["Text wirklich l�schen ???"] : Gosub TWEG : Goto WARTEN
  369. If Choice(2)=3
  370.    Gosub TLS
  371.    Home 
  372.    For T=1 To 20
  373.       Print ZEILE$(T);
  374.    Next 
  375.    Home : ZEILE=1 : SPALTE=1
  376.    ANZEIGE
  377.    Goto WARTEN
  378. End If 
  379. If Choice(2)=4
  380.    TSP
  381.    Goto WARTEN
  382. End If 
  383. If Choice(2)=6
  384.    ADRESSEN
  385.    Goto WARTEN
  386. End If 
  387. If Choice(2)=8
  388.    INFO
  389.    Goto WARTEN
  390. End If 
  391. If Choice(2)=10
  392.    ALERT["Programm wirklich verlassen ???"]
  393.    Gosub VERL
  394.    Goto WARTEN
  395. End If 
  396. BLOCK:
  397. If Choice(2)=1
  398.    Gosub BLOCKB
  399.    Goto WARTEN
  400. End If 
  401. If Choice(3)=1
  402.    Gosub BLOCKWEG
  403.    Goto WARTEN
  404. End If 
  405. If Choice(3)=2
  406.    Gosub BLOCKKOP
  407.    Goto WARTEN
  408. End If 
  409. If Choice(3)=3
  410.    Gosub BLOCKLDN
  411.    Goto WARTEN
  412. End If 
  413. If Choice(3)=4
  414.    Gosub BLOCKSPC
  415.    Goto WARTEN
  416. End If 
  417. Goto WARTEN
  418. BEARBEITEN:
  419. If Choice(2)=10
  420.    Change Mouse 3
  421.    X=Free
  422.    Change Mouse 1
  423.    Goto WARTEN
  424. End If 
  425. If Choice(2)=7
  426.    TABULATOREN
  427.    Goto WARTEN
  428. End If 
  429. If Choice(2)=8
  430.    TAB_ANZEIGE
  431.    Goto WARTEN
  432. End If 
  433. If Choice(2)=1
  434.    Gosub BLOCKSATZ
  435.    Home 
  436.    If GSZ<70
  437.       For T=1 To 20
  438.          Print Left$(ZEILE$(T),GSZ)
  439.       Next 
  440.    Else 
  441.       For T=1 To 20
  442.          Print Left$(ZEILE$(T),GSZ);
  443.       Next 
  444.    End If 
  445.    Home : ZEILE=1 : SPALTE=1 : ANZEIGE
  446.    Goto WARTEN
  447. End If 
  448. If Choice(2)=3
  449.    EINSTELLEN
  450.    Home 
  451.    For T=1 To 20 : Print Space$(70); : Next : Home 
  452.    If GSZ<70
  453.       For T=1 To 20 : Print Left$(ZEILE$(T),GSZ) : Next 
  454.    Else 
  455.       For T=1 To 20 : Print Left$(ZEILE$(T),GSZ); : Next 
  456.    End If 
  457.    Home : SPALTE=1 : ZEILE=1 : ANZEIGE
  458.    Goto WARTEN
  459. End If 
  460. If Choice(2)=5
  461.    SEITENZAHL
  462.    Goto WARTEN
  463. End If 
  464. KNOPF:
  465. If Choice(2)=1
  466.    F$="Ghostwriter:A.TXT" : Gosub KNOPF_BRIEFE_LESEN
  467.    Home 
  468.    For T=1 To 20
  469.       Print ZEILE$(T);
  470.    Next 
  471.    Home : ZEILE=1 : SPALTE=1
  472.    ANZEIGE
  473.    Goto WARTEN
  474. End If 
  475. If Choice(2)=2
  476.    F$="Ghostwriter:B.TXT" : Gosub KNOPF_BRIEFE_LESEN
  477.    Home 
  478.    For T=1 To 20
  479.       Print ZEILE$(T);
  480.    Next 
  481.    Home : ZEILE=1 : SPALTE=1
  482.    ANZEIGE
  483.    Goto WARTEN
  484. End If 
  485. If Choice(2)=3
  486.    F$="Ghostwriter:C.TXT" : Gosub KNOPF_BRIEFE_LESEN
  487.    Home 
  488.    For T=1 To 20
  489.       Print ZEILE$(T);
  490.    Next 
  491.    Home : ZEILE=1 : SPALTE=1
  492.    ANZEIGE
  493.    Goto WARTEN
  494. End If 
  495. If Choice(2)=4
  496.    F$="Ghostwriter:D.TXT" : Gosub KNOPF_BRIEFE_LESEN
  497.    Home 
  498.    For T=1 To 20
  499.       Print ZEILE$(T);
  500.    Next 
  501.    Home : ZEILE=1 : SPALTE=1
  502.    ANZEIGE
  503.    Goto WARTEN
  504. End If 
  505. If Choice(2)=5
  506.    F$="Ghostwriter:E.TXT" : Gosub KNOPF_BRIEFE_LESEN
  507.    Home 
  508.    For T=1 To 20
  509.       Print ZEILE$(T);
  510.    Next 
  511.    Home : ZEILE=1 : SPALTE=1
  512.    ANZEIGE
  513.    Goto WARTEN
  514. End If 
  515. If Choice(2)=6
  516.    F$="Ghostwriter:F.TXT" : Gosub KNOPF_BRIEFE_LESEN
  517.    Home 
  518.    For T=1 To 20
  519.       Print ZEILE$(T);
  520.    Next 
  521.    Home : ZEILE=1 : SPALTE=1
  522.    ANZEIGE
  523.    Goto WARTEN
  524. End If 
  525. If Choice(2)=7
  526.    F$="Ghostwriter:G.TXT" : Gosub KNOPF_BRIEFE_LESEN
  527.    Home 
  528.    For T=1 To 20
  529.       Print ZEILE$(T);
  530.    Next 
  531.    Home : ZEILE=1 : SPALTE=1
  532.    ANZEIGE
  533.    Goto WARTEN
  534. End If 
  535. If Choice(2)=9 Then ALERT["Sind Sie sicher ???"] : If J=1 Then Goto WARTEN
  536. If Not Exist("Ghostwriter:Suchsystem") Then Goto WARTEN
  537. Run "Ghostwriter:Suchsystem"
  538. DRUC:
  539. If Choice(2)=1
  540.    DRUCKEN_1
  541.    Goto WARTEN
  542. End If 
  543. If Choice(2)=2
  544.    TXT_SPOOLEN
  545.    Goto WARTEN
  546. End If 
  547. If Choice(2)=4
  548.    SETUP
  549.    ZEILE=1 : SPALTE=1
  550.    Gosub SEEND
  551.    Gosub SERBL : Gosub SEVBL : Gosub SEANF
  552.    Goto WARTEN
  553. End If 
  554. If Choice(2)=6
  555.    R�NDER_SETUP
  556.    Goto WARTEN
  557. End If 
  558. TWEG:
  559. If J=1 Then Return 
  560. For T=1 To LZEILE
  561.    ZEILE$(T)=Space$(70)
  562. Next : VF=0
  563. ZEILE=1 : SPALTE=1
  564. Home 
  565. For T=1 To 20
  566.    Print ZEILE$(T);
  567. Next 
  568. ANZEIGE
  569. Home : Return 
  570. VERL:
  571. If J=1 Then Return 
  572. Fade 2 : Wait 30 : End 
  573. BLOCKB:
  574. F=0
  575. Paper 1 : Memorize Y : Locate 44,22
  576. Print "Z1:?";Space$(16)
  577. Remember Y 
  578. LABEL:
  579. A$=Inkey$
  580. S=Scancode
  581. If S=69 Then Memorize Y : ANF=0 : Paper 1 : Locate 44,22 : Print T$ : Paper 4 : Remember Y : Return 
  582. If S=67 or S=68 Then Goto LABEL1
  583. If S=76 Then Gosub CURSH
  584. If S=77 Then Gosub CURSU
  585. Goto LABEL
  586. LABEL1:
  587. If F=1 Then SCH=ZEILE : Memorize Y : Paper 1 : Locate 44,22 : Print "Z1:";ANF;"  Z2:";SCH;"  " : Goto LABEL2
  588. Memorize Y 
  589. ANF=ZEILE
  590. Paper 1 : Locate 44,22 : Print Space$(20) : Locate 44,22 : Print "Z1:";ANF;" Z2:?" : F=1
  591. Remember Y 
  592. Goto LABEL
  593. LABEL2:
  594. If ANF>SCH Then Swap ANF,SCH : Locate 44,22 : Print "Z1:";ANF;" Z2:";SCH;"  " : Paper 4 : Remember Y : Return 
  595. Remember Y 
  596. Return 
  597. BLOCKKOP:
  598. If ANF=0 Then Return 
  599. Paper 1 : Memorize Y : Locate 44,22
  600. Print "ZZ:?";Space$(16)
  601. Remember Y 
  602. LABEL3:
  603. A$=Inkey$
  604. S=Scancode
  605. If S=69 Then Memorize Y : ANF=0 : Paper 1 : Locate 44,22 : Print T$ : Paper 4 : Remember Y : Return 
  606. If S=67 or S=68 Then Goto LABEL4
  607. If S=76 Then Gosub CURSH
  608. If S=77 Then Gosub CURSU
  609. Goto LABEL3
  610. LABEL4:
  611. Z=ZEILE
  612. Do 
  613.    ZEILE$(Z)=ZEILE$(ANF)
  614.    Inc ANF : Inc Z
  615.    If Z>LZEILE or ANF>SCH Then Goto LABEL5
  616. Loop 
  617. LABEL5:
  618. Home 
  619. For T=1 To 20
  620.    Print ZEILE$(T);
  621. Next 
  622. Locate 44,22 : Paper 1 : Print T$ : Paper 4
  623. ZEILE=1 : SPALTE=1 : Home : ANZEIGE : ANF=0
  624. Return 
  625. BLOCKWEG:
  626. If ANF=0 Then Return 
  627. ALERT["Sind Sie sicher ???"] : If J=1 Then Return 
  628. For T=ANF To SCH
  629.    ZEILE$(T)=Space$(70)
  630. Next 
  631. Paper 4 : Goto LABEL5
  632. BLOCKSPC:
  633. If ANF=0 Then Return 
  634. F$=Fsel$("df0:*.BLK","","Block speichern")
  635. If F$="" Then Return 
  636. Open Out 1,F$
  637. Print #1,(SCH-ANF+1)
  638. For T=ANF To SCH
  639.    Print #1,ZEILE$(T)
  640. Next 
  641. Close 1
  642. Return 
  643. BLOCKLDN:
  644. F$=Fsel$("df0:*.BLK","","Block laden")
  645. If F$="" Then Return 
  646. If Exist(F$) or Exist(F$+".BLK") Then Goto WRS
  647. Return 
  648. WRS:
  649. Open In 1,F$ : Z=ZEILE : W=1
  650. Input #1,ANZAHL
  651. Change Mouse 3
  652. Do 
  653.    Line Input #1,ZEILE$(Z)
  654.    Inc Z : Inc W
  655.    If Z>LZEILE or W>ANZAHL Then Goto LABEL8
  656. Loop 
  657. LABEL8:
  658. Close 1
  659. Home 
  660. For T=1 To 20
  661.    Print ZEILE$(T);
  662. Next 
  663. ZEILE=1 : SPALTE=1 : ANZEIGE : Home : Change Mouse 1 : Return 
  664. BLOCKSATZ:
  665. Change Mouse 3
  666. Gosub SEANF
  667. ZEILE=1
  668. SPALTE=0
  669. WEITER:
  670. If Right$(ZEILE$(ZEILE),ESS)=Space$(ESS) Then Goto LABEL10
  671. If ZEILE$(ZEILE)=Space$(GSZ) Then ANZEIGE : Goto LABEL10
  672. Inc SPALTE : If SPALTE>=GSZ-2 Then SPALTE=2 : ANZEIGE
  673. If Mid$(ZEILE$(ZEILE),SPALTE,1)<>" " Then ANZEIGE : Goto WEITER
  674. Gosub ZEEIN : Inc SPALTE : ANZEIGE : If Right$(ZEILE$(ZEILE),1)=" " Then Goto WEITER
  675. LABEL10:
  676. Inc ZEILE : If ZEILE>LZEILE Then Change Mouse 1 : Return 
  677. SPALTE=0 : ANZEIGE : Goto WEITER
  678. TLS:
  679. Menu Off 
  680. F$=Fsel$("df0:*.TXT","","Textfile einlesen")
  681. If F$="" Then Menu On : Return 
  682. If Exist(F$) or Exist(F$+".TXT") Then Goto WES
  683. Menu On : Return 
  684. WES:
  685. Menu Off 
  686. If Right$(F$,4)=".TXT" Then Open In 1,F$ : T=1 : Goto WEI
  687. Open In 1,F$+".TXT" : T=1
  688. WEI:
  689. Change Mouse 3
  690. Line Input #1,ZEILE$(T)
  691. Locate 0,0 : Print ZEILE$(T)
  692. If Eof(1) Then Close 1 : Menu On : Goto WEE
  693. Inc T : Goto WEI
  694. WEE:
  695. TN$=F$ : T$=Left$(TN$,20)
  696. LZEILE=T
  697. Locate 44,22 : Paper 1 : Print T$ : Paper 4
  698. Change Mouse 1
  699. Menu On : Return 
  700. KNOPF_BRIEFE_LESEN:
  701. If Not Exist(F$) Then Return 
  702. If Exist(F$) Then Gosub WES
  703. Return 
  704. Procedure INFO
  705.    Wind Open 2,150,50,40,10,5
  706.    Border 2,0,1 : Paper 1 : Clw 
  707.    Curs Off 
  708.    Centre "Ghostwriter V1.1" : Cdown 
  709.    Centre "~~~~~~~~~~~~~~~~" : Cdown 
  710.    Centre "Programmiert von:" : Cdown 
  711.    Centre "CHRIS DOPIERALSKI" : Cdown 
  712.    Cdown : Centre "Copyright by:" : Cdown 
  713.    Centre "Goodsoft 1991"
  714.    While Mouse Key=0
  715.    Wend : Wind Close : Curs On 
  716. End Proc
  717. Procedure ALERT[ZL$]
  718.    Wind Open 2,150,50,40,10,5
  719.    Border 2,1,0 : Paper 1 : Clw : Curs Off 
  720.    Ink 0
  721.    Centre "A C H T U N G !"
  722.    Cdown : Cdown : Centre ZL$
  723.    Ink 2
  724.    Bar 200,100 To 300,120
  725.    Ink 1
  726.    Bar 202,102 To 298,118
  727.    Ink 0
  728.    Bar 320,100 To 420,120
  729.    Ink 1
  730.    Bar 322,102 To 418,118
  731.    Pen 2
  732.    Locate 8,6 : Print "Nein !"
  733.    Pen 0
  734.    Locate 24,6 : Print "Ja !"
  735.    Reserve Zone 2
  736.    Set Zone 1,202,102 To 298,118
  737.    Set Zone 2,322,102 To 418,118
  738.    M:
  739.    While Mouse Click<>1
  740.    Wend 
  741.    If Mouse Zone=1 Then J=1
  742.    If Mouse Zone=2 Then J=2
  743.    If Mouse Zone=0 Then Goto M
  744.    Wind Close : Curs On 
  745. End Proc[J]
  746. Procedure ANZEIGE
  747.    Curs Off 
  748.    Memorize X 
  749.    Memorize Y 
  750.    Locate 5,22
  751.    Paper 1 : Print " Zeile:";ZEILE;"  "
  752.    Locate 17,22
  753.    Print "  Spalte:";SPALTE;"  "
  754.    Locate 31,22
  755.    Print "  Seite:";SEITE;"  "
  756.    Paper 4
  757.    Remember X 
  758.    Remember Y 
  759.    Curs On 
  760. End Proc
  761. Procedure MEN�S
  762.    Menu$(1)=" Datei "
  763.    Menu$(1,1)=" Neuer Text     "
  764.    Menu$(1,2)=" --------------"
  765.    Menu$(1,3)=" Text laden     "
  766.    Menu$(1,4)=" Text speichern "
  767.    Menu$(1,5)=" --------------"
  768.    Menu$(1,6)=" Adressen       "
  769.    Menu$(1,7)=" --------------"
  770.    Menu$(1,8)=" Programm_Info  "
  771.    Menu$(1,9)=" --------------"
  772.    Menu$(1,10)=" Programm_Ende  "
  773.    Menu Key(1,10) To 69
  774.    Rem Menu Key(1,8) To 95
  775.    Menu Inactive(1,2) : Menu Inactive(1,5) : Menu Inactive(1,7) : Menu Inactive(1,9)
  776.    Menu$(2)=" Block "
  777.    Menu$(2,1)=" Block bestimmen  "
  778.    Menu$(2,2)=" Block bearbeiten "
  779.    Menu$(2,2,1)=" Block l�schen  "
  780.    Menu$(2,2,2)=" Block kopieren "
  781.    Menu$(2,2,3)=" Block laden    "
  782.    Menu$(2,2,4)=" Block sichern  "
  783.    Menu$(3)=" Bearbeiten "
  784.    Menu$(3,1)=" Blocksatz    "
  785.    Menu$(3,2)=" -----------"
  786.    Menu$(3,3)=" B_Sensibi.   "
  787.    Menu$(3,4)=" -----------"
  788.    Menu$(3,5)=" Seitenzahl   "
  789.    Menu$(3,6)=" -----------"
  790.    Menu$(3,7)=" Tabs setzen  "
  791.    Menu$(3,8)=" Tabs zeigen  "
  792.    Menu$(3,9)=" -----------"
  793.    Menu$(3,10)=" Garbage-Col. "
  794.    Menu Inactive(3,2) : Menu Inactive(3,4) : Menu Inactive(3,6) : Menu Inactive(3,9)
  795.    Menu$(4)=" Drucken "
  796.    Menu$(4,1)=" Text drucken  "
  797.    Menu$(4,2)=" Text spoolen  "
  798.    Menu$(4,3)=" -------------"
  799.    Menu$(4,4)=" Drucker-Setup "
  800.    Menu$(4,5)=" -------------"
  801.    Menu$(4,6)=" R�nder-Setup  "
  802.    Menu Inactive(4,3) : Menu Inactive(4,5)
  803.    Menu$(5)=" Texte "
  804.    Menu$(5,1)=" Kurzbrief            "
  805.    Menu$(5,2)=" Frage zum Programm   "
  806.    Menu$(5,3)=" Information          "
  807.    Menu$(5,4)=" Bestellung           "
  808.    Menu$(5,5)=" Wo bleibt meine Ware "
  809.    Menu$(5,6)=" M�ngelr�ge           "
  810.    Menu$(5,7)=" ï¿½berweisung          "
  811.    Menu$(5,8)=" -------------------- "
  812.    Menu$(5,9)=" Such-System          "
  813.    Menu Inactive(5,8)
  814.    Menu On 
  815. End Proc
  816. Procedure ADRESSEN
  817.    Wind Open 2,150,50,40,10,5
  818.    Border 2,0,1 : Paper 1 : Clw : Curs Off 
  819.    Cdown : Centre "Funktion:Adressen"
  820.    Cdown : Centre "~~~~~~~~~~~~~~~~~" : Cdown : Locate 0,
  821.    Print "Diese  Funktion  wird in der folgenden";
  822.    Print "Programmversion,eine  Nachladefunktion";
  823.    Print "starten. Erkundigen Sie sich zu diesem";
  824.    Print "Zweck   bei   der   Firma    GOODSOFT.";
  825.    While Mouse Key=0
  826.    Wend : Wind Close : Curs On 
  827. End Proc
  828. Procedure BILD_LEER
  829.    For T=0 To 20
  830.       Locate 0,T
  831.       Print Space$(70)
  832.    Next 
  833. End Proc
  834. Procedure SETUP
  835.    TREIBER_START:
  836.    BILD_LEER : Locate 0,0
  837.    Centre "Verf�gbare Druckertreiber" : Cdown 
  838.    Centre "~~~~~~~~~~~~~~~~~~~~~~~~~" : Cdown : Print 
  839.    Dir$="df0:" : Pen 1
  840.    F$=Dir First$("*.trb")
  841.    While F$<>""
  842.       If Left$(F$,1)="*" Then Goto N_TRB
  843.       Print Left$(F$,13)
  844.       N_TRB:
  845.       F$=Dir Next$
  846.    Wend 
  847.    Dir$="df0:"
  848.    SETUP_LESEN : Locate 0,16 : Print "Aktiver Treiber:";TRB$
  849.    Reserve Zone 4 : Pen 0
  850.    Locate 1,18 : Print Border$(Zone$("Treiber bestimmen",1),1)
  851.    Locate 20,18 : Print Border$(Zone$("Treiben anlegen",2),1)
  852.    Locate 37,18 : Print Border$(Zone$("Test",3),1)
  853.    Locate 43,18 : Print Border$(Zone$("Zum Men�",4),1) : Curs Off 
  854.    TREIBER:
  855.    While Mouse Key<>1 : Wend 
  856.    If Mouse Zone=0 Then Goto TREIBER
  857.    On Mouse Zone Goto BESTIMMEN,ANLAGE,TEST,ZUMME
  858.    TEST:
  859.    ZEILE_DRUCKEN[Chr$(27)+"x"+Chr$(0)]
  860.    ZEILE_DRUCKEN["Dies ist eine Probe !!! ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½"]
  861.    ZEILE_DRUCKEN[Chr$(27)+"x"+Chr$(1)]
  862.    ZEILE_DRUCKEN["Dies ist eine Probe !!! ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½"]
  863.    Goto TREIBER_START
  864.    BESTIMMEN:
  865.    HOLEN[" Neuer Treiber :",0,13,11]
  866.    If Len(ST$)<12 Then ST$=ST$+Space$(12-Len(ST$))
  867.    If Exist("Ghostwriter:"+ST$+".trb") Then SETUP_SCHREIBEN : TREIBER_LESEN : Goto TREIBER_START
  868.    Goto TREIBER
  869.    ANLAGE:
  870.    BILD_LEER : Locate 0,0
  871.    Centre "Treiber anlegen" : Cdown 
  872.    Centre "~~~~~~~~~~~~~~~" : Print : Print 
  873.    Restore 
  874.    For T=0 To 6
  875.       Read X$
  876.       HOLEN["ASCII-Code f�r "+X$+" :",1,4+T,3] : TR(T)=Val(ST$)
  877.    Next 
  878.    Data "�","�","�","�","�","�","�"
  879.    HOLEN["Treiber_Name :",1,12,11] : TRB$=ST$ : If Len(TRB$)<12 Then TRB$=TRB$+Space$(12-Len(TRB$))
  880.    TREIBER_SCHREIBEN
  881.    Goto TREIBER_START
  882.    ZUMME:
  883.    Curs On : Locate 0,0
  884. End Proc
  885. Procedure SETUP_SCHREIBEN
  886.    If Len(ST$)<12 Then ST$=ST$+Space$(12-Len(ST$))
  887.    Open Out 1,"df0:Setup.dat"
  888.    Print #1,ST$ : Close 1 : TRB$=ST$
  889. End Proc
  890. Procedure SETUP_LESEN
  891.    Open In 1,"df0:Setup.dat"
  892.    Line Input #1,TRB$
  893.    Close 1
  894. End Proc
  895. Procedure TREIBER_SCHREIBEN
  896.    Open Out 1,"df0:"+TRB$+".trb"
  897.    For T=0 To 6
  898.       Print #1,TR(T)
  899.    Next : Close 1
  900. End Proc
  901. Procedure TREIBER_LESEN
  902.    Open In 1,"df0:"+TRB$+".trb"
  903.    For T=0 To 6
  904.       Input #1,TR(T)
  905.    Next : Close 1
  906. End Proc
  907. Procedure EINSTELLEN
  908.    Wind Open 2,150,50,40,10,5
  909.    Border 2,0,1 : Paper 1 : Clw 
  910.    Centre "Blocksatz einstellen" : Cdown 
  911.    Centre "~~~~~~~~~~~~~~~~~~~~"
  912.    Rem ----------------- Cdown : Locate 0, : Print "Zeilenbreite:";GSZ
  913.    Rem ----------------- Input "Neue Zeilenbreite:";G 
  914.    Rem ----------------- If G>24 and G<71 and VF=0 Then GSZ=G 
  915.    Print : Print "          Alter Wert :";ESS
  916.    HOLEN["Blocksatzeinsatz:",10,4,2] : E=Val(ST$)
  917.    If E>0 and E<GSZ Then ESS=E
  918.    Wind Close 
  919. End Proc
  920. Procedure SEITENZAHL
  921.    Wind Open 2,150,50,40,10,5
  922.    Border 2,0,1 : Paper 1 : Clw 
  923.    X$=Str$(LZEILE/60)
  924.    Cdown : TX$="Aktuelle Seitenzahl:"+X$
  925.    Centre TX$
  926.    Locate 10,5
  927.    HOLEN["Neue Seitenzahl:",10,5,2] : X=Val(ST$)
  928.    If X<0 or X>22 or X<LZEILE/60 Then Wind Close : Pop Proc
  929.    LZEILE=60*X
  930.    Wind Close 
  931. End Proc
  932. Procedure TSP
  933.    Menu Off 
  934.    F$=Fsel$("df0:*.TXT","","Textfile speichern")
  935.    If F$="" Then Menu On : Pop Proc
  936.    If Right$(F$,4)=".TXT" Then Open Out 1,F$ : Goto LSS
  937.    Open Out 1,F$+".TXT"
  938.    LSS:
  939.    Change Mouse 3
  940.    For T=1 To LZEILE
  941.       Print #1,ZEILE$(T)
  942.    Next 
  943.    Close 1
  944.    Menu On 
  945.    Change Mouse 1
  946. End Proc
  947. Procedure ZEILE_DRUCKEN[ZL$]
  948.    Open Port 2,"PAR:"
  949.    For T=1 To Len(ZL$)
  950.       Z$=Mid$(ZL$,T,1)
  951.       If Z$="�" Then Print #2,Chr$(TR(0)); : Goto DRUCKEN
  952.       If Z$="�" Then Print #2,Chr$(TR(1)); : Goto DRUCKEN
  953.       If Z$="�" Then Print #2,Chr$(TR(2)); : Goto DRUCKEN
  954.       If Z$="�" Then Print #2,Chr$(TR(3)); : Goto DRUCKEN
  955.       If Z$="�" Then Print #2,Chr$(TR(4)); : Goto DRUCKEN
  956.       If Z$="�" Then Print #2,Chr$(TR(5)); : Goto DRUCKEN
  957.       If Z$="�" Then Print #2,Chr$(TR(6)); : Goto DRUCKEN
  958.       Print #2,Chr$(Asc(Z$));
  959.       DRUCKEN:
  960.    Next 
  961.    Print #2,Chr$(13) : Close 2
  962. End Proc
  963. Procedure HOLEN[ST$,X,Y,Z]
  964.    Clear Key : Curs On : Locate X,Y : Print ST$; : Add X,Len(ST$)
  965.    MI=X : MX=X+Z : ST$=""
  966.    WARTEN100:
  967.    While A$=""
  968.       A$=Inkey$
  969.    Wend 
  970.    SC=Scancode
  971.    If SC>0 and SC<11 Then Goto WEITER100
  972.    If SC>28 and SC<32 Then Goto WEITER100
  973.    If SC>44 and SC<48 Then Goto WEITER100
  974.    If SC>60 and SC<64 Then Goto WEITER100
  975.    If SC=65 Then Goto WEG
  976.    If SC=57 or SC=56 or SC=58 or SC=60 or SC=15 Then Goto WEITER100
  977.    If Asc(A$)>31 and Asc(A$)<253 Then Goto WEITER100
  978.    If SC=67 or SC=68 Then Curs Off : Pop Proc
  979.    Clear Key : A$="" : Goto WARTEN100
  980.    WEITER100:
  981.    If X>MX Then Clear Key : A$="" : Goto WARTEN100
  982.    Print A$; : Inc X
  983.    ST$=ST$+A$
  984.    Clear Key : A$="" : Goto WARTEN100
  985.    WEG:
  986.    If X=MI Then Goto WARTEN100
  987.    Cleft : Print " "; : Cleft 
  988.    ST$=Left$(ST$,Len(ST$)-1)
  989.    Dec X
  990.    Goto WARTEN100
  991. End Proc
  992. Procedure DRUCKEN_1
  993.    ALERT["Drucker bereit ???"] : If J=1 Then Pop Proc
  994.    Menu Off 
  995.    ALERT["Druck in Sch�nschrift ?"] : If J=1 Then ZEILE_DRUCKEN[Chr$(27)+"x0"] : Goto AUSDRUCK
  996.    ZEILE_DRUCKEN[Chr$(27)+"x1"]
  997.    AUSDRUCK:
  998.    If VO=0 Then Goto WEITER_DRUCKEN
  999.    For T=0 To VO
  1000.       ZEILE_DRUCKEN[Chr$(13)]
  1001.    Next 
  1002.    WEITER_DRUCKEN:
  1003.    Change Mouse 3
  1004.    For T=0 To LZEILE
  1005.       DRC$=Space$(LR)+ZEILE$(T)
  1006.       ZEILE_DRUCKEN[DRC$]
  1007.    Next 
  1008.    Change Mouse 1
  1009.    For T=1 To 6
  1010.       ZEILE_DRUCKEN[Chr$(13)]
  1011.    Next 
  1012.    Menu On 
  1013. End Proc
  1014. Procedure TXT_SPOOLEN
  1015.    ALERT["Drucker bereit ?"] : If J=1 Then Pop Proc
  1016.    ALERT["Druck in Sch�nschrift ?"] : If J=1 Then ZEILE_DRUCKEN[Chr$(27)+"x0"] : Goto WEITER200
  1017.    ZEILE_DRUCKEN[Chr$(27)+"x1"]
  1018.    WEITER200:
  1019.    Menu Off 
  1020.    F$=Fsel$("df0:*.TXT","","Textfile spoolen")
  1021.    If F$="" Then Menu On : Pop Proc
  1022.    If Exist(F$) or Exist(F$+".TXT") Then Goto WES1
  1023.    Menu On : Pop Proc
  1024.    WES1:
  1025.    If Right$(F$,4)=".TXT" Then Open In 1,F$ : Goto WEI1
  1026.    If VO=0 Then Goto WEI2
  1027.    For T=1 To VO
  1028.       ZEILE_DRUCKEN[Chr$(13)]
  1029.    Next 
  1030.    WEI2:
  1031.    Open In 1,F$+".TXT"
  1032.    WEI1:
  1033.    Change Mouse 3
  1034.    Line Input #1,ZL$ : ZEILE_DRUCKEN[Space$(LR)+ZL$]
  1035.    If Eof(1) Then Close 1 : Menu On : Goto WEE1
  1036.    Goto WEI1
  1037.    WEE1:
  1038.    Change Mouse 1
  1039. End Proc
  1040. Procedure R�NDER_SETUP
  1041.    Wind Open 2,150,50,40,10,5
  1042.    Border 2,0,1 : Paper 1 : Clw 
  1043.    Centre "R�nder einstellen" : Cdown 
  1044.    Centre "~~~~~~~~~~~~~~~~~" : Cdown 
  1045.    HOLEN["Oberer Rand :",12,3,2] : X=Val(ST$) : If X>(-1) and X<12 Then VO=X
  1046.    HOLEN["Linker Rand :",12,5,2] : X=Val(ST$) : If X>(-1) and X<0 Then LR=X
  1047.    Wind Close 
  1048. End Proc
  1049. Procedure TABULATOREN
  1050.    Wind Open 2,150,50,40,10,5
  1051.    Border 2,0,1 : Paper 1 : Clw 
  1052.    Centre "Tabulatoren festlegen" : Cdown 
  1053.    Centre "~~~~~~~~~~~~~~~~~~~~~" : Cdown 
  1054.    For T=0 To 5
  1055.       HOLEN["Tabulatorposition"+Str$(T+1)+":",4,4,1] : If Val(ST$)>0 and Val(ST$)<60 Then TB(T)=Val(ST$)
  1056.       Locate 4,4 : Print Space$(30)
  1057.    Next 
  1058.    Wind Close 
  1059. End Proc
  1060. Procedure TAB_ANZEIGE
  1061.    Wind Open 2,150,50,40,10,5
  1062.    Border 2,0,1 : Paper 1 : Clw 
  1063.    Centre "Tabulatoren-Kontrolle" : Cdown 
  1064.    Centre "~~~~~~~~~~~~~~~~~~~~~" : Print 
  1065.    For T=0 To 3
  1066.       Print "  Tabulator Nr.";T+1;":";TB(T)
  1067.    Next 
  1068.    Print "  Tabulator Nr. 5:";TB(4); : Curs Off 
  1069.    While Mouse Key=0 : Wend : Curs On 
  1070.    Wind Close 
  1071. End Proc
  1072. Procedure S_DATEN_LESEN
  1073.    If Not Exist("ram:s.dat") Then S_DAT_SCHREIBEN : Pop Proc
  1074.    Open In 1,"ram:s.dat"
  1075.    Input #1,SDAT$ : Close 1
  1076.    If SDAT$="***" Then Pop Proc
  1077.    Wind Open 2,150,50,40,10,5
  1078.    Border 2,0,1 : Paper 1 : Clw : Cdown 
  1079.    Centre "Im Suchsystem haben Sie" : Cdown 
  1080.    Centre "Text Nr.: "+SDAT$+" gefunden." : Cdown : Print 
  1081.    Centre "Bitte legen Sie die Datendiskette" : Print 
  1082.    Centre "ein und klicken mit der Maus!" : Curs Off : Print 
  1083.    While Mouse Key=0 : Wend 
  1084.    Hide On : Wait 150
  1085.    If Not Exist("df0:"+SDAT$+".TXT") Then Show : Wind Close : S_DAT_SCHREIBEN : Pop Proc
  1086.    Menu Off 
  1087.    Open In 1,"df0:"+SDAT$+".TXT" : T=1
  1088.    Change Mouse 3 : Wind Close : Show 
  1089.    WI10:
  1090.    Line Input #1,ZEILE$(T)
  1091.    Locate 0,0 : Print ZEILE$(T)
  1092.    If Eof(1) Then Close 1 : Menu On : Goto WE10
  1093.    Inc T : Goto WI10
  1094.    WE10:
  1095.    TN$=SDAT$ : T$=Left$(TN$,20)
  1096.    LZEILE=T
  1097.    Locate 44,22 : Paper 1 : Print T$ : Paper 4
  1098.    Change Mouse 1
  1099.    Home 
  1100.    For T=1 To 20
  1101.       Print ZEILE$(T);
  1102.    Next 
  1103.    Home : ZEILE=1 : SPALTE=1
  1104.    RemSYS_WARTEN :  
  1105.    S_DAT_SCHREIBEN
  1106.    ANZEIGE
  1107.    Menu On 
  1108. End Proc
  1109. Procedure S_DAT_SCHREIBEN
  1110.    If Exist("ram:")
  1111.       Open Out 1,"ram:s.dat"
  1112.       Print #1,"***"
  1113.       Close 1
  1114.    End If 
  1115. End Proc
  1116. Procedure SYS_WARTEN
  1117.    Wind Open 2,150,50,40,10,5
  1118.    Border 2,0,1 : Paper 1 : Clw 
  1119.    Print : Print : Bell : Centre "Bitte System-Diskette einlegen!" : Print : Print : Centre "Click Mouse!!!"
  1120.    Curs Off : While Mouse Key=0 : Wend : Curs On 
  1121.    While Not Exist("Ghostwriter:s.dat") : Wend 
  1122.    Wind Close 
  1123. End Proc
  1124. Procedure INFO_2
  1125.    Wind Open 2,120,50,50,11,5
  1126.    Border 2,0,1 : Paper 1 : Clw 
  1127.    Curs Off 
  1128.    Print : Centre "Belegung der Funktionstasten" : Cdown 
  1129.    Centre "~~~~~~~~~~~~~~~~~~~~~~~~~~~~" : Print 
  1130.    Print " F1 = Zeile l�schen     F2 = Zeile einf�gen"
  1131.    Print " F3 = Bild rauf         F4 = Bild runter"
  1132.    Print " F5 = Zeichen einf�gen  F6 = Oberste Zeile"
  1133.    Print " F7 = Unterste Zeile    F8 = Erste Spalte"
  1134.    Print " F9 = Letzte Spalte     F0 = Ab Cursor l�schen"
  1135.    While Mouse Key=0
  1136.    Wend : Wind Close : Curs On 
  1137. End Proc
  1138. Procedure WORD_WRAP
  1139.       W_W=0 : ZWW=Y Curs
  1140.     Rem - ï¿½berpr�fen ob notwendig
  1141.       If ZEILE=LZEILE Then Pop Proc
  1142.       If ZEILE$(ZEILE+1)<>Space$(GSZ) Then Pop Proc
  1143.       If Right$(ZEILE$(ZEILE),1)=" " Then Pop Proc
  1144.    Rem - Letztes Word in ZEILE$(ZEILE) finden 
  1145.       PZ=1 : Z$="*"
  1146.       While Left$(Z$,1)<>" "
  1147.          ZL$=ZEILE$(ZEILE)
  1148.          Z$=Right$(ZL$,PZ)
  1149.          Inc PZ
  1150.       Wend 
  1151.    Rem - Z$ bearbeiten
  1152.       L=Len(Z$)-1
  1153.       Z$=Right$(Z$,L)
  1154.    Rem - Gefundenes Wort in n�chste Zeile einsetzen 
  1155.       Inc ZEILE
  1156.       ZL$=ZEILE$(ZEILE)
  1157.       Left$(ZL$,L)=Z$
  1158.    Rem - Wort in alter Zeile l�schen  
  1159.       ZW$=Space$(L) : ZL=ZEILE-1 : ZL$=ZEILE$(ZEILE-1)
  1160.       Right$(ZL$,L)=ZW$
  1161.       Locate 0,
  1162.       Print ZEILE$(ZL)
  1163.       Locate SPALTE-1,
  1164.    Rem - ï¿½berpr�fen, ob Anzeige m�glich 
  1165.       If ZWW=19 Then W_W=1 : Cup : Cup : Dec ZEILE : ANZEIGE : Shoot : Pop Proc
  1166.    Rem - Anzeigen der neuen Zeile 
  1167.       Cup 
  1168.       Locate 0,
  1169.       Print ZEILE$(ZEILE)
  1170.       Cup : Cup 
  1171.       SPALTE=Len(Z$)+1
  1172.       Locate SPALTE-1,
  1173.       W_W=1
  1174.       ANZEIGE
  1175. End Proc
  1176.  Rem -----------------
  1177.  Rem -----------------  
  1178.  Rem -----------------